From 93b7067dd77c8b14964ff2c185f701f54c8d013f Mon Sep 17 00:00:00 2001 From: "kaf24@scramble.cl.cam.ac.uk" Date: Sat, 27 Nov 2004 18:16:32 +0000 Subject: [PATCH] bitkeeper revision 1.1159.187.26 (41a8c480rckpADNC0Lh2VZmtPTNKeg) We must load shared_info into %esi at every external entry point into entry.S (i.e., every label marked ENTRY()). I was missing at least resume_userspace which is essential for vm86. --- linux-2.6.9-xen-sparse/arch/xen/i386/kernel/entry.S | 3 +++ 1 file changed, 3 insertions(+) diff --git a/linux-2.6.9-xen-sparse/arch/xen/i386/kernel/entry.S b/linux-2.6.9-xen-sparse/arch/xen/i386/kernel/entry.S index 281e06ebc1..d530d32150 100644 --- a/linux-2.6.9-xen-sparse/arch/xen/i386/kernel/entry.S +++ b/linux-2.6.9-xen-sparse/arch/xen/i386/kernel/entry.S @@ -194,6 +194,7 @@ ENTRY(ret_from_fork) call schedule_tail GET_THREAD_INFO(%ebp) popl %eax + movl HYPERVISOR_shared_info, %esi jmp syscall_exit /* @@ -214,6 +215,7 @@ ret_from_intr: testl $(VM_MASK | 2), %eax jz resume_kernel # returning to kernel or vm86-space ENTRY(resume_userspace) + movl HYPERVISOR_shared_info, %esi XEN_BLOCK_EVENTS(%esi) # make sure we don't miss an interrupt # setting need_resched or sigpending # between sampling and the iret @@ -225,6 +227,7 @@ ENTRY(resume_userspace) #ifdef CONFIG_PREEMPT ENTRY(resume_kernel) + movl HYPERVISOR_shared_info, %esi cmpl $0,TI_preempt_count(%ebp) # non-zero preempt_count ? jnz restore_all need_resched: -- 2.30.2